package com.zjsru.oneDay202212;

/**
 * @Author: CookLee
 * @Date: 2022/12/15
 * 字符串转化后的各位数字之和
 *
 * 输入：s = "iiii", k = 1
 * 输出：36
 * 解释：操作如下：
 * - 转化："iiii" ➝ "(9)(9)(9)(9)" ➝ "9999" ➝ 9999
 * - 转换 #1：9999 ➝ 9 + 9 + 9 + 9 ➝ 36
 * 因此，结果整数为 36 。
 *
 * 输入：s = "leetcode", k = 2
 * 输出：6
 * 解释：操作如下：
 * - 转化："leetcode" ➝ "(12)(5)(5)(20)(3)(15)(4)(5)" ➝ "12552031545" ➝ 12552031545
 * - 转换 #1：12552031545 ➝ 1 + 2 + 5 + 5 + 2 + 0 + 3 + 1 + 5 + 4 + 5 ➝ 33
 * - 转换 #2：33 ➝ 3 + 3 ➝ 6
 * 因此，结果整数为 6 。
 *
 */
public class GetLucky {
    
    /**
     * 模拟
     */
    public int getLucky(String s, int k) {
        StringBuffer sb = new StringBuffer();
        for (int i = 0; i < s.length(); i++) {
            sb.append(s.charAt(i) - 'a' + 1);
        }
        String ans = sb.toString();
        while (k > 0) {
            ans = String.valueOf(helper(ans));
            k--;
        }
        
        return Integer.parseInt(ans);
    }
    
    /**
     * 计算转化的数字
     */
    private int helper(String s) {
        int sum = 0;
        for (int i = 0; i < s.length(); i++) {
            sum += Integer.parseInt(String.valueOf(s.charAt(i)));
        }
        return sum;
    }
    
    public static void main(String[] args) {
        GetLucky getLucky = new GetLucky();
        String s = "leetcode";
        int k = 2;
        System.out.println(getLucky.getLucky(s, k));
    }
}
